package com.relytosoft.mizar.media.analyze.api.pojo.dto;

import com.relytosoft.mizar.media.analyze.api.pojo.vo.AyCameraVo;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * @author lj
 * @date 2022/6/7 10:32
 */
public class AyBehaviorTaskDto {
    /**
     * 任务名称
     */
    @ApiModelProperty(value = "任务名称")
    @NotBlank(message = "任务名称不能为空")
    private String name;

    /**
     * 任务状态，-1：未开始，1：进行中，2：已完成  3:异常
     */
    @ApiModelProperty(value = "任务状态，-1：未开始，1：进行中，2：已完成  3:异常")
    private Integer status;

    /**
     * 行为场景
     */
    @ApiModelProperty(value = "行为场景")
    @NotBlank(message = "算法名称不能为空")
    private String algorithmid;

    /**
     * 分析事件
     */
    @ApiModelProperty(value = "分析事件")
    @NotBlank(message = "事件类型不能为空")
    private String subtypes;

    /**
     * 设备
     */
    @ApiModelProperty(value = "设备", required = true)
    @NotNull(message = "设备不能为空")
    private List<AyCameraVo> ayCameraVos;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "模板")
    private Integer planTemplateId;


    /**
     * 0：周计划 1：日计划（周一到周日计划相同） 2：全天
     */
    private Integer planType;

    /**
     * 取值范围如下： 周计划时：1～7 日计划时：1 全天：0
     */
    private Integer planInfoNum;

    /**
     * (json数据) 周计划时最多7个计划时间信息 日计划时最多1个计划时间信息 全程录时无计划时间信息
     */
    private String planInfoList;


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getAlgorithmid() {
        return algorithmid;
    }

    public void setAlgorithmid(String algorithmid) {
        this.algorithmid = algorithmid;
    }

    public String getSubtypes() {
        return subtypes;
    }

    public void setSubtypes(String subtypes) {
        this.subtypes = subtypes;
    }

    public List<AyCameraVo> getAyCameraVos() {
        return ayCameraVos;
    }

    public void setAyCameraVos(List<AyCameraVo> ayCameraVos) {
        this.ayCameraVos = ayCameraVos;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Integer getPlanTemplateId() {
        return planTemplateId;
    }

    public void setPlanTemplateId(Integer planTemplateId) {
        this.planTemplateId = planTemplateId;
    }

    public Integer getPlanType() {
        return planType;
    }

    public void setPlanType(Integer planType) {
        this.planType = planType;
    }

    public Integer getPlanInfoNum() {
        return planInfoNum;
    }

    public void setPlanInfoNum(Integer planInfoNum) {
        this.planInfoNum = planInfoNum;
    }

    public String getPlanInfoList() {
        return planInfoList;
    }

    public void setPlanInfoList(String planInfoList) {
        this.planInfoList = planInfoList;
    }

    @Override
    public String toString() {
        return "AyBehaviorTaskDto{" +
                ", name='" + name + '\'' +
                ", status=" + status +
                ", algorithmid='" + algorithmid + '\'' +
                ", subtypes='" + subtypes + '\'' +
                ", ayCameraVos=" + ayCameraVos +
                ", remark='" + remark + '\'' +
                ", planTemplateId=" + planTemplateId +
                ", planType=" + planType +
                ", planInfoNum=" + planInfoNum +
                ", planInfoList='" + planInfoList + '\'' +
                '}';
    }
}
